package com.net.xpay.alipay.model;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

/**
 * 2020/4/28 23:45

 */
@Getter
@Setter
@NoArgsConstructor
public class TransOrderModel {
    //商户的批次号 必选
    private String outBatchNo;

    //批次总金额，单位为元，精确到小数点后两位，取值范围[0.01,9999999999999.99]  必选
    private String totalTransAmount;

    //批次总笔数 10 必选
    private String totalCount;

    //业务产品码。不同产品值不同，具体值联系支付宝确认。 必选
    private String productCode;

    //业务场景。不同场景值不同，具体值联系支付宝确认。 必选
    private String bizScene;

    //转账标题，用于收银台展示标题 报销付款 必选
    private String orderTitle;

    //绝对超时时间，格式为 yyyy-MM-dd HH:mm 非必选
    private String timeExpire;

    //业务备注 非必选
    private String remark;

    //收款信息列表
    private List<TransOrderDetail> transOrderList;

    public static TransOrderModel getInstance() {
        return new TransOrderModel();
    }

    @Getter
    @Setter
    @NoArgsConstructor
    public static class TransOrderDetail {
        //明细外部订单号 必选
        private String outBizNo;

        //明细金额 单位为元（最小1元），精确到小数点后两位 必选
        private String transAmount;

        //转账备注，收款方如果是支付宝账号，会展示在收款方账单里 非必选
        private String remark;

        //收款方信息
        private PayeeInfo payeeInfo;

        public static TransOrderDetail getInstance() {
            return new TransOrderDetail();
        }
    }

    @Getter
    @Setter
    @NoArgsConstructor
    public static class PayeeInfo {
        //收款方账号，传入支付宝账号或者支付宝uid test@taobao.com 必选
        private String identity;

        //1.当identity传入支付宝账号时，identity_type传ALIPAY_LOGON_ID 2.当当identity传入支付宝uid时，identity_type传ALIPAY_USER_ID 必选
        private String identityType;

        //参与方真实姓名，如果非空，将校验收款支付宝账号姓名一致性。当identity_type传ALIPAY_LOGON_ID时此字段必选
        private String name;

        public static PayeeInfo getInstance() {
            return new PayeeInfo();
        }
    }
}
